package main

import "code.google.com/p/go-tour/tree"

// Walk 步进 tree t 将所有的值从 tree 发送到 channel ch。
func Walk(t *tree.Tree, ch chan int){
    if t != nil{
        Walk(t.Left, ch)
        ch <- t.value
        Walk(t.Right, ch)
    }

}

// Same 检测树 t1 和 t2 是否含有相同的值。
func Same(t1, t2 *tree.Tree) bool{
    ch_1 := make(char int, 10)
    ch_2 := make(char int, 10)

    go Walk(t1, ch_1)
    go Walk(t2, ch_2)

    for i := 0; i < 10; i++{
        v1, v2 := <-ch_1, <-ch_2
        if v1 != v2{
            return false

        }

    }
    return true

}

func main() {
    fmt.Println(Same(tree.New(1), tree.New(1)))
}